#ifndef __IO_STUB_H__
#define __IO_STUB_H__

class IOStub
{
public:
	typedef enum tagIoSeek
	{
		IO_SEEK_SET = 0,
		IO_SEEK_CUR = 1,
		IO_SEEK_END = 2
	}IoSeek;

	typedef enum tagIoOpen
	{
		IO_OPEN_READ,
		IO_OPEN_WRITE,
		IO_OPEN_APPEND,
		IO_OPEN_READWRITE,
		IO_OPEN_NEW
	}IoOpen;

	virtual bool OpenFile(string strPath, IoOpen openflag) = 0;
	virtual size_t ReadFile(byte* buffer, size_t size) = 0;
	virtual size_t WriteFile(const byte* buffer, size_t size) = 0;
	virtual long SeekFile(long offset, IoSeek origin) = 0; 
	virtual long TellFile() = 0;
};

#endif